home *** CD-ROM | disk | FTP | other *** search
/ Gamers Delight 2 / Gamers Delight 2.iso / Aminet / game / role / Ang261Lib.lha / src / help.c < prev    next >
C/C++ Source or Header  |  1994-10-22  |  7KB  |  339 lines

  1. /*
  2.  * help.c: identify a symbol 
  3.  *
  4.  * Copyright (c) 1989 James E. Wilson, Robert A. Koeneke 
  5.  *
  6.  * This software may be copied and distributed for educational, research, and
  7.  * not for profit purposes provided that this copyright and statement are
  8.  * included in all such copies. 
  9.  */
  10.  
  11. #include "constant.h"
  12. #include "monster.h"
  13. #include "config.h"
  14. #include "types.h"
  15. #include "externs.h"
  16.  
  17.  
  18. void 
  19. ident_char()
  20. {
  21.     char         command, query;
  22.     register int i, n;
  23.  
  24.     if (get_com("Enter character to be identified :", &command))
  25.     switch (command) {
  26.     /*
  27.      * every printing ASCII character is listed here, in the order in
  28.      * which they appear in the ASCII character set 
  29.      */
  30.       case ' ':
  31.         prt("  - An open pit.", 0, 0);
  32.         break;
  33.       case '!':
  34.         prt("! - A potion.", 0, 0);
  35.         break;
  36.       case '"':
  37.         prt("\" - An amulet, periapt, or necklace.", 0, 0);
  38.         break;
  39.       case '#':
  40.         prt("# - A stone wall.", 0, 0);
  41.         break;
  42.       case '$':
  43.         prt("$ - Treasure.", 0, 0);
  44.         break;
  45.       case '%':
  46.         if (highlight_seams == TRUE)
  47.         prt("% - A magma or quartz vein.", 0, 0);
  48.         else
  49.         prt("% - Not used.", 0, 0);
  50.         break;
  51.       case '&':
  52.         prt("& - Demon (Oh dear!).", 0, 0);
  53.         break;
  54.       case '\'':
  55.         prt("' - An open door.", 0, 0);
  56.         break;
  57.       case '(':
  58.         prt("( - Soft armor.", 0, 0);
  59.         break;
  60.       case ')':
  61.         prt(") - A shield.", 0, 0);
  62.         break;
  63.       case '*':
  64.         prt("* - Gems.", 0, 0);
  65.         break;
  66.       case '+':
  67.         prt("+ - A closed door.", 0, 0);
  68.         break;
  69.       case ',':
  70.         prt(", - Food or mushroom patch.", 0, 0);
  71.         break;
  72.       case '-':
  73.         prt("- - A wand", 0, 0);
  74.         break;
  75.       case '.':
  76.         prt(". - Floor.", 0, 0);
  77.         break;
  78.       case '/':
  79.         prt("/ - A pole weapon.", 0, 0);
  80.         break;
  81.     /* case '0': prt("0 - Not used.", 0, 0); break; */
  82.       case '1':
  83.         prt("1 - Entrance to General Store.", 0, 0);
  84.         break;
  85.       case '2':
  86.         prt("2 - Entrance to Armory.", 0, 0);
  87.         break;
  88.       case '3':
  89.         prt("3 - Entrance to Weaponsmith.", 0, 0);
  90.         break;
  91.       case '4':
  92.         prt("4 - Entrance to Temple.", 0, 0);
  93.         break;
  94.       case '5':
  95.         prt("5 - Entrance to Alchemy shop.", 0, 0);
  96.         break;
  97.       case '6':
  98.         prt("6 - Entrance to Magic store.", 0, 0);
  99.         break;
  100.       case '7':
  101.         prt("7 - Entrance to Black Market.", 0, 0);
  102.         break;
  103.       case '8':
  104.         prt("8 - Entrance to your home.", 0, 0);
  105.         break;
  106.     /* case '9': prt("9 - Not used.", 0, 0);  break; */
  107.       case ':':
  108.         prt(": - Rubble.", 0, 0);
  109.         break;
  110.       case ';':
  111.         prt("; - A loose rock.", 0, 0);
  112.         break;
  113.       case '<':
  114.         prt("< - An up staircase.", 0, 0);
  115.         break;
  116.       case '=':
  117.         prt("= - A ring.", 0, 0);
  118.         break;
  119.       case '>':
  120.         prt("> - A down staircase.", 0, 0);
  121.         break;
  122.       case '?':
  123.         prt("? - A scroll.", 0, 0);
  124.         break;
  125.       case '@':
  126.         prt(py.misc.name, 0, 0);
  127.         break;
  128.       case 'A':
  129.         prt("A - Angel.", 0, 0);
  130.         break;
  131.       case 'B':
  132.         prt("B - Birds", 0, 0);
  133.         break;
  134.       case 'C':
  135.         prt("C - Canine.", 0, 0);
  136.         break;
  137.       case 'D':
  138.         prt("D - An Ancient Dragon (Beware).", 0, 0);
  139.         break;
  140.       case 'E':
  141.         prt("E - Elemental.", 0, 0);
  142.         break;
  143.       case 'F':
  144.         prt("F - Giant Fly.", 0, 0);
  145.         break;
  146.       case 'G':
  147.         prt("G - Ghost.", 0, 0);
  148.         break;
  149.       case 'H':
  150.         prt("H - Hybrid.", 0, 0);
  151.         break;
  152.       case 'I':
  153.         prt("I - Minor Demon.", 0, 0);
  154.         break;
  155.       case 'J':
  156.         prt("J - Jabberwock.", 0, 0);
  157.         break;
  158.       case 'K':
  159.         prt("K - Killer Beetle.", 0, 0);
  160.         break;
  161.       case 'L':
  162.         prt("L - Lich.", 0, 0);
  163.         break;
  164.       case 'M':
  165.         prt("M - Mummy.", 0, 0);
  166.         break;
  167.     /* case 'N': prt("N - Not used.", 0, 0); break; */
  168.       case 'O':
  169.         prt("O - Ogre.", 0, 0);
  170.         break;
  171.       case 'P':
  172.         prt("P - Giant humanoid.", 0, 0);
  173.         break;
  174.       case 'Q':
  175.         prt("Q - Quylthulg (Pulsing Flesh Mound).", 0, 0);
  176.         break;
  177.       case 'R':
  178.         prt("R - Reptiles and Amphibians.", 0, 0);
  179.         break;
  180.       case 'S':
  181.         prt("S - Giant Scorpion/Spider.", 0, 0);
  182.         break;
  183.       case 'T':
  184.         prt("T - Troll.", 0, 0);
  185.         break;
  186.       case 'U':
  187.         prt("U - Umber Hulk.", 0, 0);
  188.         break;
  189.       case 'V':
  190.         prt("V - Vampire.", 0, 0);
  191.         break;
  192.       case 'W':
  193.         prt("W - Wight or Wraith.", 0, 0);
  194.         break;
  195.       case 'X':
  196.         prt("X - Xorn/Xaren.", 0, 0);
  197.         break;
  198.       case 'Y':
  199.         prt("Y - Yeti.", 0, 0);
  200.         break;
  201.       case 'Z':
  202.         prt("Z - Zepher hound (Elemental hound).", 0, 0);
  203.         break;
  204.       case '[':
  205.         prt("[ - Hard armor.", 0, 0);
  206.         break;
  207.       case '\\':
  208.         prt("\\ - A hafted weapon.", 0, 0);
  209.         break;
  210.       case ']':
  211.         prt("] - Misc. armor.", 0, 0);
  212.         break;
  213.       case '^':
  214.         prt("^ - A trap.", 0, 0);
  215.         break;
  216.       case '_':
  217.         prt("_ - A staff.", 0, 0);
  218.         break;
  219.     /* case '`': prt("` - Not used.", 0, 0); break; */
  220.       case 'a':
  221.         prt("a - Giant Ant/Ant Lion.", 0, 0);
  222.         break;
  223.       case 'b':
  224.         prt("b - Giant Bat.", 0, 0);
  225.         break;
  226.       case 'c':
  227.         prt("c - Giant Centipede.", 0, 0);
  228.         break;
  229.       case 'd':
  230.         prt("d - a Dragon.", 0, 0);
  231.         break;
  232.       case 'e':
  233.         prt("e - Floating Eye.", 0, 0);
  234.         break;
  235.       case 'f':
  236.         prt("f - Felines", 0, 0);
  237.         break;
  238.       case 'g':
  239.         prt("g - Golem.", 0, 0);
  240.         break;
  241.       case 'h':
  242.         prt("h - Humanoid (Dwarf, Elf, Halfling).", 0, 0);
  243.         break;
  244.       case 'i':
  245.         prt("i - Icky Thing.", 0, 0);
  246.         break;
  247.       case 'j':
  248.         prt("j - Jelly.", 0, 0);
  249.         break;
  250.       case 'k':
  251.         prt("k - Kobold.", 0, 0);
  252.         break;
  253.       case 'l':
  254.         prt("l - Giant Louse.", 0, 0);
  255.         break;
  256.       case 'm':
  257.         prt("m - Mold.", 0, 0);
  258.         break;
  259.       case 'n':
  260.         prt("n - Naga.", 0, 0);
  261.         break;
  262.       case 'o':
  263.         prt("o - Orc.", 0, 0);
  264.         break;
  265.       case 'p':
  266.         prt("p - Person (Humanoid).", 0, 0);
  267.         break;
  268.       case 'q':
  269.         prt("q - Quadruped.", 0, 0);
  270.         break;
  271.       case 'r':
  272.         prt("r - Rodent.", 0, 0);
  273.         break;
  274.       case 's':
  275.         prt("s - Skeleton.", 0, 0);
  276.         break;
  277.       case 't':
  278.         prt("t - Giant Tick.", 0, 0);
  279.         break;
  280.     /* case 'u': prt("u - Unicorn.", 0, 0); break;  */
  281.       case 'v':
  282.         prt("v - Vortex.", 0, 0);
  283.         break;
  284.       case 'w':
  285.         prt("w - Worm or Worm Mass.", 0, 0);
  286.         break;
  287.     /* case 'x': prt("x - Not used.", 0, 0); break; */
  288.       case 'y':
  289.         prt("y - Yeek.", 0, 0);
  290.         break;
  291.       case 'z':
  292.         prt("z - Zombie.", 0, 0);
  293.         break;
  294.       case '{':
  295.         prt("{ - Arrow, bolt, or bullet.", 0, 0);
  296.         break;
  297.       case '|':
  298.         prt("| - A sword or dagger.", 0, 0);
  299.         break;
  300.       case '}':
  301.         prt("} - Bow, crossbow, or sling.", 0, 0);
  302.         break;
  303.       case '~':
  304.         prt("~ - Tool or miscellaneous item.", 0, 0);
  305.         break;
  306.       default:
  307.         prt("Not Used.", 0, 0);
  308.         break;
  309.     }
  310.  
  311. /* Allow access to monster memory. -CJS- */
  312.     n = 0;
  313. #ifdef MSDOS
  314.     if (command == '.' || command == '#')
  315.     command = (command == '.' ? floorsym : wallsym);
  316. #endif
  317.     for (i = MAX_CREATURES - 1; i >= 0; i--)
  318. #ifdef MSDOS
  319.     if ((c_list[i].cchar == (unsigned) command) && bool_roff_recall(i))
  320. #else
  321.     if ((c_list[i].cchar == (unsigned) command) && bool_roff_recall(i))
  322. #endif
  323.     {
  324.         if (n == 0) {
  325.         put_buffer("You recall those details? [y/n]", 0, 40);
  326.         query = inkey();
  327.         if (query != 'y' && query != 'Y')
  328.             break;
  329.         erase_line(0, 40);
  330.         save_screen();
  331.         }
  332.         n++;
  333.         query = roff_recall(i);
  334.         restore_screen();
  335.         if (query == ESCAPE)
  336.         break;
  337.     }
  338. }
  339.